package com.TanNgee.registry.zk;

import com.TanNgee.registry.ServiceRegistry;
import com.TanNgee.registry.zk.util.CuratorUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.curator.framework.CuratorFramework;

import java.net.InetSocketAddress;

/**
 * 基于Zookeeper 的服务注册实现类
 *
 * @author 陈毅
 * @create 2022/3/20 23:45
 */
@Slf4j
public class ZkServiceRegistryImpl implements ServiceRegistry {
    @Override

    public void registerService(String rpcServiceName, InetSocketAddress inetSocketAddress) {
        //    根节点： 完整的服务名称 rpcServiceName （class name+group+version）
        //   子节点： 是对应的服务地址（ip+端口号
        String servicePath = CuratorUtils.ZK_REGISTER_ROOT_PATH + "/" + rpcServiceName + inetSocketAddress.toString();
        CuratorFramework zkClient = CuratorUtils.getZkClient();
        // 创建持久节点
        CuratorUtils.createPersistentNode(zkClient, servicePath);
    }
}
